#include <iostream>
#include <fstream>
#include <string>
#include "bundle.h"
using namespace std;

int main(int argc, char* argv[]){
    if(argc < 3){
        cout << "argv[1] : 输入需要解压的文件名(路径)" << endl;
        cout << "argv[2] : 输入解压后的文件名(路径)" << endl;
        return 1;
    }
    //打开待解压文件
    ifstream ifs;
    string ifilename = argv[1];
    string ofilename = argv[2];

    ifs.open(ifilename,std::ios::binary);
    ifs.seekg(0, std::ios::end);
    size_t sz = ifs.tellg();//计算出文件大小
    ifs.seekg(0, std::ios::beg);

    string s1;//创建存储带解压文件内容
    s1.resize(sz);//重定义字符串大小，避免空间浪费
    ifs.read(&s1[0],sz);

    string unzip = bundle::unpack(s1);//解压内容写入新字符串中。

    ifs.close();

    ofstream ofs;//打开解压存储文件
    ofs.open(ofilename, std::ios::binary);
    ofs.write(&unzip[0],unzip.size());//把解压内容写入文件中
    ofs.close();
    
    return 0;
}